package com.backstage.service;

import com.backstage.common.page.Page;
import com.backstage.entity.Menu;
import com.backstage.entity.Role;
import com.backstage.entity.User;

import java.util.ArrayList;
import java.util.List;

/**
 * @Project authority
 * @Package com.backstage.service
 * @Data 2017/7/19下午 3:16.
 * @Aurhor 阮雪峰
 */
public interface UserService {

    /**
     * 修改密码
     * @param loginUser
     */
    void updatePassword(User loginUser);

    /**
     * 分页查询用户
     * @param page
     * @param user
     */
    void userByPage(Page<User> page, User user);

    /**
     * 新增
     * @param user
     */
    void add(User user);

    /**
     * 修改
     * @param user
     */
    void edit(User user);

    /**
     * 删除
     * @param users
     */
    void delete(ArrayList<User> users);

    /**
     * 通过ID查询
     * @param user
     * @return
     */
    User getUserById(User user);

    /**
     * 禁用或者取消禁用账户
     * @param user
     */
    void updateStatus(User user);

    /**
     * 用户名是否存在
     * @param user
     * @return
     */
    boolean isExistUserName(User user);

    /**
     * 查询所有的角色
     * @return
     */
    List<Role> getAllRoles();

    /**
     * 初始化密码
     * @param user
     */
    void initPassword(User user);
}
